package com.xiyu.service.convert.restaurant;

import com.xiyu.service.vo.restaurant.dish.DishMultipleGetOutput;
import com.xiyu.service.vo.restaurant.dish.DishSingleGetOutput;
import com.xiyu.service.vo.restaurant.dish.DishListQueryDishTypeOutput;
import com.xiyu.service.vo.restaurant.dish.DishSingleGetDishTypeOutput;
import com.xiyu.service.model.restaurant.dish.RestaurantDishMaterial;
import com.xiyu.service.vo.restaurant.dish.DishDishTypeGetOutput;
import com.xiyu.service.vo.restaurant.dish.DishDishTypeUpdateInput;
import com.xiyu.service.vo.restaurant.dish.DishDishTypeCreateInput;
import com.xiyu.service.vo.restaurant.dish.DishPageQueryDishTypeOutput;
import com.xiyu.service.model.restaurant.dish.RestaurantDishType;
import com.xiyu.service.vo.restaurant.dish.DishUpdateInput;
import com.xiyu.service.vo.restaurant.dish.DishCreateInput;
import com.xiyu.service.vo.restaurant.dish.DishQueryOutput;
import com.xiyu.service.model.restaurant.dish.RestaurantDish;
import java.util.*;

import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import org.babyfish.jimmer.Page;

/**
 * 餐品管理 Convert
 */
@Mapper
public interface DishConvert {
    DishConvert INSTANCE = Mappers.getMapper(DishConvert.class);


    List<DishQueryOutput> queryPageOutputConvert(List<RestaurantDish> output);

    RestaurantDish createInputConvert(DishCreateInput input);

    RestaurantDish updateInputConvert(DishUpdateInput input);

    RestaurantDishMaterial updateInoutConvert(DishUpdateInput.material input);

    DishSingleGetOutput singleGetDishOutputConvert(RestaurantDish output);

    RestaurantDishType dishTypeCreateInputConvert(DishDishTypeCreateInput input);

    RestaurantDishType dishTypeUpdateInputConvert(DishDishTypeUpdateInput input);

    DishDishTypeGetOutput dishTypeGetOutputConvert(RestaurantDishType output);

    DishSingleGetDishTypeOutput singleGetDishTypeOutputConvert(RestaurantDishType output);

    List<DishPageQueryDishTypeOutput> pageQueryDishTypeOutputConvert(List<RestaurantDishType> output);

    List<DishListQueryDishTypeOutput> listQueryDishTypeOutputConvert(List<RestaurantDishType> output);

    DishSingleGetOutput singleGetOutputConvert(RestaurantDish output);

    List<DishMultipleGetOutput> multipleGetOutputConvert(List<RestaurantDish> output);

    List<DishQueryOutput> queryOutputConvert(List<RestaurantDish> output);

}
